/*
给你一个整数 x ，如果 x 是一个回文整数，返回 true ；否则，返回 false 。

        回文数是指正序（从左向右）和倒序（从右向左）读都是一样的整数。

        例如，121 是回文，而 123 不是。
         

        示例 1：

        输入：x = 121
        输出：true
        示例 2：

        输入：x = -121
        输出：false
        解释：从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
        示例 3：

        输入：x = 10
        输出：false
        解释：从右向左读, 为 01 .因此它不是一个回文数。

*/

// 完全自己写的解法
// 暴力求解
public class LC91 {

    public static void main(String[] args) {
        LC91 test = new LC91();
        int num = 1000001;

        System.out.println(test.isPalindrome(num));
        System.out.println(num);
    }

    public boolean isPalindrome(int x){
        boolean result = false;

        // 如果是负数，那肯定不是回文数
        if (x < 0) {
            result = false;
        }

        // 如果0-10，length/2是0；下面的判断失效，需要单独考虑
        if (x >= 0 && x < 10 ) {
            result = true;
        }

        // 如果是>10整数，
        if (x > 0) {
            Integer num = Integer.valueOf(x);
            String str = num.toString();    // 先转化为字符串
            char[] cha = str.toCharArray(); // 再转化为char数组

            for (int i = 0; i < cha.length/2; i++) {
                if (cha[i] == cha[cha.length-1-i]) {
                    result = true;
                } else {
                    result = false; // 有一次false就不要继续了，否则后面的结果会覆盖；
                    break;
                }
            }
        }

        return result;
    }
}

// TODO 如何将字符串转换为数组???